是Android四大元件之首,反正就把它當作ViewController就對了(不負責任)。☘️☘️☘️(以後只要有可以類比iOS的地方就會出現小燈泡不知道為什麼IT邦幫忙對Emoji的支援度這麼差...很多常見的Emoji都不能用,改幸運草)
之後的課程會再介紹另外三個元件。
好,首先,讓我們先來產生一個新的Activity,作法跟以前Xcode一樣,在資料夾上面右鍵new一個出來,但是它藏得有點深⋯⋯⋯⋯
這邊就可以用到AS一個很方便萬用的熱鍵:Shift兩次
就可以很快速的做到想做的動作。
⚠️⚠️⚠️另外,每個Activity都會先繼承原生的AppCompatActivity,
所以要繼承客製類別的話要自己再動手改...
總之先上圖(官方)
Activity跟我們家的ViewController一樣☘️☘️☘️
有所謂的Life cycle
對應關係如下(VDL就是ViewDidLoad,以此類推)
iOS | Android |
---|---|
VDL | onCreate |
WillEnterForeground | onRestart |
VWA, DidBecomeActive | onStart |
VDA | onResume |
VWD, WillResignActive | onPause |
VDD, DidEnterBackground | onStop |
dealloc | onDestroy |
另外要注意的是⚠️⚠️⚠️: | |
App前後景切換是否會觸發畫面生命週期 或 Alert show/dismiss是否會觸發畫面生命週期,Android都是會的,剛好跟iOS相反。 |
在code裡面也有實作了,大家可以去看看
Android似乎不像iOS一樣有container view controller的概念去管理view controller間的切換,取而代之的是Intent這個東西。
透過Intent,我們就可以切換到另一個Activity,有點像是presentViewController的感覺,只是我們的丟的東西不是VC,是Intent。
另外,Intent有個好處是,可以協助Activity間數據的傳遞,以前我們可能需要在接受的VC上開屬性,或是新增initWithXXX方法,透過Intent就簡單多了。
例如,我們有兩個Activity,一個叫Lesson03Activity,想跳到另一個StandardLaunchActivity
我們可以這樣寫:
Intent intent = new Intent(Lesson03Activity.this,StandardLaunchActivity.class);
intent.putExtra("title",btnStandard.getText());
startActivity(intent);
this.setTitle(getIntent().getStringExtra("title"));
可以去 https://github.com/mark33699/IDLA 看一下順便給顆⭐️
如果你喜歡我的影片別忘了按讚分享加訂閱,開啟紅色的小鈴鐺,我們明天見~